package class1.s2022350143027.service;

import class1.s2022350143027.data.OrdersData;
import class1.s2022350143027.model.GoodsModel;
import class1.s2022350143027.model.OrdersModel;

import java.sql.SQLException;
import java.util.List;

/**
 * 订单管理业务逻辑接口，必须继承该接口并实现方法
 * @author yzy
 * @date 2024-05-2
 *
 */

public interface YzyOrdersService {

    /**
     * 订单集合返回
     */
    OrdersData getOrdersData();

    /**
     * 订单查找（订单编号，客户们方式）
     * @param orderId_or_customerName 根据订单编号或者客户名查找对应订单
     * @return List OrdersModel(集合元素类型）
     */
    List<OrdersModel> getOrderModel(String orderId_or_customerName);

    /**
     * 订单查找（日期段方式）（ 日期输入格式为2024-04-25 即年-月-日 ）
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return List OrdersModel(集合元素类型）
     */
    List<OrdersModel> getOrderModel(String startDate, String endDate);

    /**
     * 订单写入
     * @param ordersBaseModel 通过订单模型写入
     * @return boolean
     */
    boolean save(OrdersModel ordersBaseModel);

    /**
     * 订单更新
     * @param lookOrder_id 通过订单编号查找后进行修改
     * @return boolean
     */
    boolean update(String lookOrder_id);

    /**
     * 订单删除
     * @param lookOrder_id 通过订单编号查找后进行删除
     * @return boolean
     */
    boolean delete(String lookOrder_id);

    /**
     * 订单展示
     * @param o_list 通过订单集合进行展示
     */
    void show(List<OrdersModel> o_list);


    /**
     * 我新加的逻辑,退出时把数据写入txt中
     */
    boolean SaveDataToTxt();


    /**
     * 我新加的逻辑,退出时把数据写入sql库中
     */
    boolean SaveDataToSql();

    boolean DeleteDataFromSql(GoodsModel myModel) throws SQLException;
}
